//创建一个 Redux store 来以存放应用中所有的 state。
// compose用于后台调试
import { createStore, applyMiddleware,compose } from 'redux'
import thunk from 'redux-thunk'
// 拆分redUcer
import rootReducer from './reducers/index'
/**
 * createStore接收三个参数,reducer (一个或多个),状态,applyMiddleware(中间件)
 *  []reducer 作用收到action以后必须给出一个新的state,这样view才会发生变化,这种state的计算过程就叫做reducer
 * initialState初始空对象,使用的时候会返回新状态,依次执行
 * applyMiddleware将所有中间件组成一个数组
 * middleware来自thunk处理异步,异步执行开发的action
 *  */
const initialState = {}//初始空对象,使用的时候会返回新状态
const middleware = [thunk]
// 把之前的[]替换成rootRoducer
export const store = createStore(
    rootReducer,
    initialState,
    // 中间件
    compose(
        applyMiddleware(...middleware),
        // 调试
        window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
    ),
    )